package com.lmabbe.core.common.converter;

import com.lmabbe.core.common.dto.SysRoleResourceDTO;
import com.lmabbe.core.common.entitys.SysRoleResource;
import com.lmabbe.core.common.vo.SysRoleResourceVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;

import java.util.List;

/**
 * 权限-资源表 转换器
 *
 * @author lmabbe
 */
@Mapper(componentModel = "spring")
public interface SysRoleResourceConverter {

    /**
     * dto转实体
     *
     * @param to
     * @return
     */
    SysRoleResource dto2Entity(SysRoleResourceDTO to);

    /**
     * dto转实体
     *
     * @param to
     * @return
     */
    @Mapping(target = "roleResourceId", source = "roleResourceId")
    SysRoleResource dto2Entity(SysRoleResourceDTO to, Long roleResourceId);

    /**
     * 数据列表转Vo列表
     *
     * @param list
     * @return
     */
    List<SysRoleResourceVO> list2Vos(List<SysRoleResource> list);

    /**
     * 实体转VO
     *
     * @param entity
     * @return
     */
    SysRoleResourceVO entity2Vo(SysRoleResource entity);
}